<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<meta http-equiv="x-UA-Compatible" content="ie=Edge">
   	<meta name="viewport" content="width=device-width, initial-scale=1">
   	<title>Crafty - Crafty.DrawManager</title>
	<link type="text/css" rel="stylesheet" href="../craftyjs-site.css" />
	<link rel="shortcut icon" href="../favicon.ico">
</head>
<body>
	<div id = "header-background"> </div>
	<div id = "page-frame">
	<div id="header">
		<nav class="navbar">
  			<div class="container-fluid">
  				<div class="navbar-header">
  					<a class="navbar-brand" href="../"> <img class="logo" src="../images/text-logo.png" /> </a>
  					
				</div>
				<div class="collapse navbar-collapse navbar-right" id="bs-example-navbar-collapse-1">
					<ul class="nav navbar-nav">
						<li><a href="../">首页</a></li>
						<li><a href="../getting-started/">快速开始</a></li>
						<li><a href="../documentation/">文档</a></li>
						<li><a href="../api/">API</a></li>
						<li><a href="../components/">组件</a></li>
						<li class="emph"><a href="../#install">下载</a></li>
					</ul>
				</div>
			</div>
		</nav>
	</div>


	<div id="main">
		<div id="content" class="container">
			



<div id="docs"><div class="toc-holder" id="doc-nav"><ul id="doc-level-one"><li><a href="events.html">List of Events</a></li><li class="category">Core<ul class="category-list"><li><a href="Crafty.html">Crafty</a></li><li><a href="Crafty Core.html">Crafty Core</a></li><li><a href="Crafty-bind.html">Crafty.bind</a></li><li><a href="Crafty-c.html">Crafty.c</a></li><li><a href="Crafty-clone.html">Crafty.clone</a></li><li><a href="Crafty-e.html">Crafty.e</a></li><li><a href="Crafty-extend.html">Crafty.extend</a></li><li><a href="Crafty-frame.html">Crafty.frame</a></li><li><a href="Crafty-getVersion.html">Crafty.getVersion</a></li><li><a href="Crafty-init.html">Crafty.init</a></li><li><a href="Crafty-isPaused.html">Crafty.isPaused</a></li><li><a href="Crafty-one.html">Crafty.one</a></li><li><a href="Crafty-pause.html">Crafty.pause</a></li><li><a href="Crafty-settings.html">Crafty.settings</a></li><li><a href="Crafty-stage.html">Crafty.stage</a></li><li><a href="Crafty-stop.html">Crafty.stop</a></li><li><a href="Crafty-support.html">Crafty.support</a></li><li><a href="Crafty-trigger.html">Crafty.trigger</a></li><li><a href="Crafty-unbind.html">Crafty.unbind</a></li><li><a href="Crafty-uniqueBind.html">Crafty.uniqueBind</a></li></ul></li><li class="category">2D<ul class="category-list"><li><a href="2D.html">2D</a></li><li><a href="Collision.html">Collision</a></li><li><a href="Crafty-circle.html">Crafty.circle</a></li><li><a href="Crafty-diamondIso.html">Crafty.diamondIso</a></li><li><a href="Crafty-HashMap.html">Crafty.HashMap</a></li><li><a href="Crafty-isometric.html">Crafty.isometric</a></li><li><a href="Crafty-map.html">Crafty.map</a></li><li><a href="Crafty-math.html">Crafty.math</a></li><li><a href="Crafty-math-Matrix2D.html">Crafty.math.Matrix2D</a></li><li><a href="Crafty-math-Vector2D.html">Crafty.math.Vector2D</a></li><li><a href="Crafty-polygon.html">Crafty.polygon</a></li><li><a href="Gravity.html">Gravity</a></li></ul></li><li class="category">Animation<ul class="category-list"><li><a href="SpriteAnimation.html">SpriteAnimation</a></li><li><a href="Tween.html">Tween</a></li></ul></li><li class="category">Assets<ul class="category-list"><li><a href="Crafty-asset.html">Crafty.asset</a></li><li><a href="Crafty-assets.html">Crafty.assets</a></li><li><a href="Crafty-image_whitelist.html">Crafty.image_whitelist</a></li><li><a href="Crafty-loader.html">Crafty.loader</a></li><li><a href="Crafty-paths.html">Crafty.paths</a></li><li><a href="Crafty-removeAssets.html">Crafty.removeAssets</a></li></ul></li><li class="category">Audio<ul class="category-list"><li><a href="Crafty-audio.html">Crafty.audio</a></li></ul></li><li class="category">Debug<ul class="category-list"><li><a href="DebugCanvas.html">DebugCanvas</a></li><li><a href="DebugPolygon.html">DebugPolygon</a></li><li><a href="DebugRectangle.html">DebugRectangle</a></li><li><a href="SolidHitBox.html">SolidHitBox</a></li><li><a href="VisibleMBR.html">VisibleMBR</a></li><li><a href="WiredHitBox.html">WiredHitBox</a></li></ul></li><li class="category">Events<ul class="category-list"><li><a href="Crafty-addEvent.html">Crafty.addEvent</a></li><li><a href="Crafty-bind.html">Crafty.bind</a></li><li><a href="Crafty-one.html">Crafty.one</a></li><li><a href="Crafty-removeEvent.html">Crafty.removeEvent</a></li><li><a href="Crafty-trigger.html">Crafty.trigger</a></li><li><a href="Crafty-unbind.html">Crafty.unbind</a></li><li><a href="Crafty-uniqueBind.html">Crafty.uniqueBind</a></li></ul></li><li class="category">Game Loop<ul class="category-list"><li><a href="Crafty-timer.html">Crafty.timer</a></li></ul></li><li class="category">Graphics<ul class="category-list"><li><a href="Canvas.html">Canvas</a></li><li><a href="Color.html">Color</a></li><li><a href="Crafty-assignColor.html">Crafty.assignColor</a></li><li><a href="Crafty-background.html">Crafty.background</a></li><li><a href="Crafty-canvas.html">Crafty.canvas</a></li><li><a href="Crafty-DOM.html">Crafty.DOM</a></li><li><a href="Crafty-DrawManager.html">Crafty.DrawManager</a></li><li><a href="Crafty-pixelart.html">Crafty.pixelart</a></li><li><a href="Crafty-sprite.html">Crafty.sprite</a></li><li><a href="DOM.html">DOM</a></li><li><a href="HTML.html">HTML</a></li><li><a href="Image.html">Image</a></li><li><a href="Particles.html">Particles</a></li><li><a href="Sprite.html">Sprite</a></li><li><a href="Text.html">Text</a></li></ul></li><li class="category">Input<ul class="category-list"><li><a href="Crafty-eventObject.html">Crafty.eventObject</a></li><li><a href="Crafty-keydown.html">Crafty.keydown</a></li><li><a href="Crafty-keys.html">Crafty.keys</a></li><li><a href="Crafty-mouseButtons.html">Crafty.mouseButtons</a></li><li><a href="Crafty-mouseDispatch.html">Crafty.mouseDispatch</a></li><li><a href="Crafty-touchDispatch.html">Crafty.touchDispatch</a></li><li><a href="Draggable.html">Draggable</a></li><li><a href="Fourway.html">Fourway</a></li><li><a href="Keyboard.html">Keyboard</a></li><li><a href="KeyboardEvent.html">KeyboardEvent</a></li><li><a href="Mouse.html">Mouse</a></li><li><a href="Multiway.html">Multiway</a></li><li><a href="Twoway.html">Twoway</a></li></ul></li><li class="category">Misc<ul class="category-list"><li><a href="Crafty-addEvent.html">Crafty.addEvent</a></li><li><a href="Crafty-device.html">Crafty.device</a></li><li><a href="Crafty-removeEvent.html">Crafty.removeEvent</a></li><li><a href="Crafty-support.html">Crafty.support</a></li></ul></li><li class="category">Model<ul class="category-list"><li><a href="Model.html">Model</a></li></ul></li><li class="category">Scenes<ul class="category-list"><li><a href="Crafty-scene.html">Crafty.scene</a></li></ul></li><li class="category">Stage<ul class="category-list"><li><a href="Crafty-background.html">Crafty.background</a></li><li><a href="Crafty-scene.html">Crafty.scene</a></li><li><a href="Crafty-viewport.html">Crafty.viewport</a></li></ul></li><li class="category">Utilities<ul class="category-list"><li><a href="Delay.html">Delay</a></li><li><a href="Storage.html">Storage</a></li></ul></li></ul></div><div id="doc-content" class="doc-page-holder"><div class="doc-page"><h1>Crafty.DrawManager</h1><div id="Crafty-DrawManager"><div class="crafty-method"><code class="signature">Crafty.DrawManager</code></div><span class="markdown"><p>An internal object manage objects to be drawn and implement
the best method of drawing in both DOM and canvas</p>
</span></div><div><h4>Methods and Properties</h4><ul class="page-toc"><li><a href="#Crafty-DrawManager-addCanvas">.addCanvas</a></li><li><a href="#Crafty-DrawManager-addDom">.addDom</a></li><li><a href="#Crafty-DrawManager-boundingRect">.boundingRect</a></li><li><a href="#Crafty-DrawManager-debug">.debug</a></li><li><a href="#Crafty-DrawManager-drawAll">.drawAll</a></li><li><a href="#Crafty-DrawManager-mergeSet">.mergeSet</a></li><li><a href="#Crafty-DrawManager-onScreen">.onScreen</a></li><li><a href="#Crafty-DrawManager-renderCanvas">.renderCanvas</a></li><li><a href="#Crafty-DrawManager-renderDOM">.renderDOM</a></li><li><a href="#Crafty-DrawManager-total2D">.total2D</a></li></ul><div id="Crafty-DrawManager-addCanvas"><a href="#doc-nav" class="doc-top">Back to top</a><h2 class="doclet-header">Crafty.DrawManager.addCanvas</h2><div class="crafty-method"><code class="signature">public Crafty.DrawManager.addCanvas(ent)</code><dl class="parameter"><dt> ent </dt><dd><span class="markdown"><p>The entity to add</p>
</span></dd></dl></div><span class="markdown"><p>Add an entity to the list of Canvas objects to draw</p>
</span></div><div id="Crafty-DrawManager-addDom"><a href="#doc-nav" class="doc-top">Back to top</a><h2 class="doclet-header">Crafty.DrawManager.addDom</h2><div class="crafty-method"><code class="signature">public Crafty.DrawManager.addDom(ent)</code><dl class="parameter"><dt> ent </dt><dd><span class="markdown"><p>The entity to add</p>
</span></dd></dl></div><span class="markdown"><p>Add an entity to the list of DOM object to draw</p>
</span></div><div id="Crafty-DrawManager-boundingRect"><a href="#doc-nav" class="doc-top">Back to top</a><h2 class="doclet-header">Crafty.DrawManager.boundingRect</h2><div class="crafty-method"><code class="signature">public Crafty.DrawManager.boundingRect(set)</code><dl class="parameter"><dt> set </dt><dd><span class="markdown"><p>Undocumented</p>
</span></dd></dl></div><span class="markdown"><ul>
<li>Calculate the common bounding rect of multiple canvas entities.</li>
<li>Returns coords</li>
</ul>
</span></div><div id="Crafty-DrawManager-debug"><a href="#doc-nav" class="doc-top">Back to top</a><h2 class="doclet-header">Crafty.DrawManager.debug</h2><div class="crafty-method"><code class="signature">public Crafty.DrawManager.drawAll([Object rect])</code><dl class="parameter"><dt> rect </dt><dd><span class="markdown"><p>a rectangular region {_x: x_val, _y: y_val, _w: w_val, _h: h_val}</p>
</span></dd></dl></div><span class="markdown"><ul>
<li>If rect is omitted, redraw within the viewport</li>
<li>If rect is provided, redraw within the rect</li>
</ul>
</span></div><div id="Crafty-DrawManager-mergeSet"><a href="#doc-nav" class="doc-top">Back to top</a><h2 class="doclet-header">Crafty.DrawManager.mergeSet</h2><div class="crafty-method"><code class="signature">public Object Crafty.DrawManager.mergeSet(Object set)</code><dl class="parameter"><dt> set </dt><dd><span class="markdown"><p>an array of rectangular regions</p>
</span></dd></dl></div><span class="markdown"><p>Merge any consecutive, overlapping rects into each other.
Its an optimization for the redraw regions.</p>
<p>The order of set isn&#39;t strictly meaningful,
but overlapping objects will often cause each other to change,
and so might be consecutive.</p>
</span></div><div id="Crafty-DrawManager-onScreen"><a href="#doc-nav" class="doc-top">Back to top</a><h2 class="doclet-header">Crafty.DrawManager.onScreen</h2><div class="crafty-method"><code class="signature">public Crafty.DrawManager.onScreen(Object rect)</code><dl class="parameter"><dt> rect </dt><dd><span class="markdown"><p>A rectangle with field {_x: x_val, _y: y_val, _w: w_val, _h: h_val}</p>
</span></dd></dl></div><span class="markdown"><p>Test if a rectangle is completely in viewport</p>
</span></div><div id="Crafty-DrawManager-renderCanvas"><a href="#doc-nav" class="doc-top">Back to top</a><h2 class="doclet-header">Crafty.DrawManager.renderCanvas</h2><div class="crafty-method"><code class="signature">public Crafty.DrawManager.renderCanvas()</code></div><span class="markdown"><ul>
<li>Triggered by the &quot;RenderScene&quot; event</li>
<li>If the number of rects is over 60% of the total number of objects
  do the naive method redrawing <code>Crafty.DrawManager.drawAll</code></li>
<li>Otherwise, clear the dirty regions, and redraw entities overlapping the dirty regions.</li>
</ul>
</span><div><h4>See Also</h4><ul class="see-also-list"><li><a href="Canvas-draw.html">Canvas.draw</a></li></ul></div></div><div id="Crafty-DrawManager-renderDOM"><a href="#doc-nav" class="doc-top">Back to top</a><h2 class="doclet-header">Crafty.DrawManager.renderDOM</h2><div class="crafty-method"><code class="signature">public Crafty.DrawManager.renderDOM()</code></div><span class="markdown"><p>When &quot;RenderScene&quot; is triggered, draws all DOM entities that have been flagged</p>
</span><div><h4>See Also</h4><ul class="see-also-list"><li><a href="DOM-draw.html">DOM.draw</a></li></ul></div></div><div id="Crafty-DrawManager-total2D"><a href="#doc-nav" class="doc-top">Back to top</a><h2 class="doclet-header">Crafty.DrawManager.total2D</h2><span class="markdown"><p>Total number of the entities that have the <code>2D</code> component.</p>
</span></div></div></div></div></div>
			
		</div>
	</div>
	<div class="clearer"></div>
	<div id="footer">
		<div id="contact">
			<a href="https://groups.google.com/forum/#!forum/craftyjs">
				<img src="../images/google.png" />
				google groups</a>
			<a href="mailto:starwed@gmail.com">
				<img src="../images/email.png" />
				starwed@gmail.com</a>
			<a href="https://github.com/craftyjs/Crafty">
				<img src="../images/github.png" />
				github</a>
		</div>
		<ul>
			<li><a href="../">首页</a></li>
				<li><a href="../getting-started/">快速开始</a></li>
				<li><a href="../documentation/">文档</a></li>
				<li><a href="../api/">API</a></li>
				<li><a href="../components/">组件</a></li>
				<li class="emph"><a href="../#install">下载</a></li>
		</ul>
		<p>
			&copy; Crafty 2010-2015. Crafty is distributed under the <a href="http://en.wikipedia.org/wiki/MIT_License">MIT License</a>.
		</p>
	</div>
</div>
</body>
</html>
